#ifndef USER_FUNCTION_H
#define USER_FUNCTION_H
#include <map>
#include <string>
#include "big_int.h"

struct user_function_i
{
   user_function_i()
   {}

   user_function_i(big_int (*f)(big_int)): 
      f_(f)
   {}

   big_int operator()(big_int x) const
   {
      return f_(x);
   }

private:
   big_int (*f_)(big_int);
};

std::map<std::string, user_function_i>& get_function();
#endif
